package Collection;/*
 *
 * @author 陈粒
 * @version 创建时间：2021/7/20 9:12
 */

import org.junit.Test;

import java.util.Arrays;
import java.util.HashSet;

public class Set {
    @Test
    public void TestSet() {
        java.util.Set<String> hashset1 = new HashSet<>();//创建第一个集合
        java.util.Set<String> hashset2 = new HashSet<>();//创建第二个集合
        java.util.Set<String> hashset3 = new HashSet<>();//创建第三个集合
        hashset1.add("h1");
        hashset1.add("h2");
        hashset1.add("h3");
        hashset1.add("h4");
        hashset2.add("h2");
        hashset2.add("h5");
        hashset3.add("h1");
        //向set集合添加元素
        System.out.println(hashset1.contains("h2"));//如果Set集合中包含指定的元素，返回true
        System.out.println(hashset1.equals("h1"));//判断Set集合和该指定对象是否相等，相等返回true，判断的是整个集合，而不是某一个元素
        System.out.println(hashset1.hashCode());//返回该Set集合的hashcode值
        System.out.println(hashset1.isEmpty());//判断该集合是否为空，为空则返回true
        System.out.println(hashset1.remove("h3"));//如果集合中有该指定元素，则将其移除，移除成功返回true
        System.out.println(hashset1.size());//返回该集合的容量(元素数)
        System.out.println(Arrays.toString(hashset1.toArray()));//将集合转换为数组
        hashset1.addAll(hashset2);//将指定Set集合的所有元素添加到该Set集合中，添加成功返回true
        System.out.println(hashset1);//打印添加后的集合
        System.out.println(hashset1.containsAll(hashset2));//如果Set集合包含指定Set集合的所有元素，则返回true
        hashset1.removeAll(hashset2);//移除Set集合中包含的指定Set集合中的元素，相当于移除掉两个Set集合的交集元素
        System.out.println(hashset1);//打印移除后的集合
        hashset1.retainAll(hashset3);//仅保留Set集合中包含在指定Set集合中的元素，相当于仅保留两个Set集合的交集元素
        System.out.println(hashset1);//打印保留后的集合
        hashset1.retainAll(hashset2);//仅保留Set集合中包含在指定Set集合中的元素，当两个Set集合的交集为空集时，打印的Set集合为空集合:[]
        System.out.println(hashset1);//打印保留后的集合,结果为[]
    }
}
